package cn.ante.ymcc.mq.producer;

import cn.ante.ymcc.domain.MediaFile;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.SendStatus;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;

@Component
public class MediaProducer {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    private Boolean sendMediaMessage(MediaFile mediaFile){
        // 此时要传入一个对象，同步发送种有一个message可以接收对象，可以选择构建这个对象，比较安全，也可以直接将meidafile作为object传入
        // 构建对象是里面是有接口时，可以找找这个接口的实现类，也可以找找工具类，也可以看看可不可以自己new自己，也可以找儿子找实现类，
        Message<MediaFile> message = MessageBuilder.withPayload(mediaFile).build();
        SendResult sendResult = rocketMQTemplate.syncSend("topic-media:tags-media", message);
        SendStatus sendStatus = sendResult.getSendStatus();
        if (sendStatus == SendStatus.SEND_OK){
            return true;
        }
        return false;
    }
}
